package com.easyCode.sqlBuilder.oop;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author 大忽悠
 * @create 2022/12/8 20:06
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(value = ElementType.FIELD)
public @interface Filed {
    /**
     * 字段名: 不指定,默认为属性名小写转驼峰
     */
    String value() default "";
    /**
     * 字段类型,可以手动指定确切的字段类型,否则采用内定的java-sql类型转换过程
     */
    String filedType() default "";
    /**
     * 字段长度,对于varchar,char等类型来说是需要进行设置的,这里也可以不进行设置,会给予默认大小
     */
    String filedLen() default "";
    /**
     * 字段是否为notNull,默认为true
     */
    boolean notNull() default true;
    /**
     * 字段是否自增
     */
    boolean autoIncrement() default false;
    /**
     * 字段默认值
     */
    String defaultVal() default "";
    /**
     * 字段描述
     */
    String comment() default "";
    /**
     * 字段顺序,值越小优先级越大
     */
    int order() default Integer.MAX_VALUE;
}
